#import "BaseViewController.h"

NS_ASSUME_NONNULL_BEGIN

@interface BaseScrollViewController : BaseViewController

@property (strong,nonatomic) NSMutableArray *dataArr;

///请求数据的下标
@property (assign, nonatomic) NSInteger startNumber;

//---------------------刷新----------------------
///初始化上下拉事件
-(void)initMJRefresh:(UIScrollView *)scrollView; 

///仅初始上拉刷新
-(void)initHeadRefresh:(UIScrollView *)scrollView;

///仅初始化下拉加载
-(void)initFootRefresh:(UIScrollView *)scrollView;

///结束刷新
-(void)mjEndRefresh;

///打开下拉刷新（有动作）
-(void)openHeadRefresh;

///下拉的回调
-(void)mjHeadRefresh;

//上拉加载的回调
-(void)mjFootRefresh;

//--------------------关于数据的处理-------------

///!!!!! 调用该类初始化刷新后，请求数据必须重写此方法 !!!!!
-(void)httpRequestData;

///数据请求完后调用该方法操作一些刷新的后续事件，自己手动添加数据，调用数据加载完成方法
-(void)httpDataRequestFinish;

///调用次方法后，后续添加到数据或者刷新事件都不用管了
-(void)httpDataRequestFinish:(NSMutableArray * _Nullable )data;

///如果出事话挡板的话，调用含有netError的方法 集成化所有判断，传进所有参数可以不用管刷新交互的一些逻辑
-(void)httpDataRequestFinish:(NSMutableArray * _Nullable )data loadFinish:(BOOL)success err:(NSString *)err;

///集成化所有判断，传进所有参数可以不用管刷新交互的一些逻辑
-(void)httpDataRequestFinish:(NSMutableArray * _Nullable )data loadFinish:(BOOL)success isNetwork:(BOOL)isNetError err:(NSString *)err;

///判断数据是否加载完成
-(void)dataLoadingFinish:(NSArray *)arr;

///要展示不同的空视图的时候，可重载这个方法
-(void)httpListLoadFinish;


//-------------------空视图-----------------
///初始化空视图
-(void)initEmptyView:(UIView * _Nullable)empty;

///初始化空视图,并且设置偏移
-(void)initEmptyView:(UIView *)empty withOffset:(CGFloat)offsect;

///弹出空视图
-(void)showEmptyView;

///空视图消息
-(void)dismissEmptyView;

///自动判断是展示还是消失
-(void)emptyShowOrDismiss;

@end

NS_ASSUME_NONNULL_END
